Computer applications have been developed that make it relatively easy for individuals to communicate with one another, locate businesses that sell certain products or services, etc. For example, e-mail applications allow users to nearly instantaneously transmit messages to contacts of such users. Specifically, a user can invoke an e-mail application, enter an e-mail address into a “To” field, generate a message, attach an image or document, and cause the message and attachment to be transmitted to the specified contact(s) in the “To” field. Social networking applications have also been developed, wherein such applications allow users to transmit messages to contacts, share photos and videos with contacts, update a status that is viewable to contacts, and other communications. In yet another example, message broadcasting applications have been developed that allow a user to broadcast relatively short messages (e.g., 140 characters or less) to individuals that subscribe to communications from the user. These applications also allow the user to subscribe to entities (individuals, groups, companies) and receive relatively short messages from such entities.
Oftentimes a single user will use multiple different applications, each of which performs some operation based at least in part upon electronic contact data corresponding to contacts of the user. That is, a user may have installed on a computing device an e-mail application, an instant messaging application, and a social networking application, each of which are configured to facilitate communications between the user and contacts of the user registered with the respective applications. Thus, the user may register different contacts with different applications. There may be instances, however, when a user desires to transmit contact data retained in one application installed on the computing device to another application installed on the computing device. For example, the user may wish to employ an e-mail application to send an e-mail to a contact that is not registered with the e-mail application, but who is registered with a social networking application. Accordingly, the user may wish to transport electronic contact data (an e-mail address) retained by the social networking application for the contact to the e-mail application.
Conventionally, transfer of contact data between applications has been undertaken manually. Therefore, the user can first open one application, access contact information in the one application, copy relevant electronic contact data retained by the one application, invoke another application, and paste the relevant contact information an appropriate field provided by the another application. If the user wishes to transfer electronic contact data corresponding to multiple contacts between applications, it can be ascertained that manually doing so is a time-consuming and labor-intensive process. Accordingly, developers of certain applications have agreed to allow electronic contact data to be transferred therebetween en masse. For example, an e-mail application may be configured to allow a social networking application to retrieve electronic contact data retained by the e-mail application (upon receiving consent of the user to allow such retrieval). This transfer of electronic contact data between applications in this manner, however, is limited to applications with developers that have reached an agreement with one another.
In an attempt to facilitate more global sharing of electronic contact data across applications, operating systems installed on computing devices have been configured to acquire and maintain a centralized contact data store. When an application is installed on a computing device that includes such an operating system, the operating system can detect that the application retains contact information (user identities, e-mail addresses, telephone numbers, physical addresses, etc.). A user of the computing device may then be prompted to indicate whether she desires that electronic contact data retained by the application be shared with other applications. If the user desires for such electronic contact data to be shared, the electronic contact data retained by the application is copied and placed in a centralized store. When another application that utilizes electronic contact data requests access to the electronic contact data in the centralized contact store, the operating system can prompt the user to indicate whether she wishes to provide the second application with access to the centralized contact store. If the user provides access to the centralized contact store to the second application, the second application will have programmatic access to all electronic contact data that is retained in the centralized store.
While this approach allows different applications to access electronic contact data from a variety of other applications, such an approach has inherent deficiencies. First, generating a centralized store of electronic contact data on a computing device presents a security concern, as a malicious hacker may attempt to learn identities of all contacts of the user by obtaining access to the centralized contact store. Further, an application may obtain programmatic access to all electronic contact data retained in the centralized contact store—if the application is malicious, such application may modify electronic contact data in the central store. For instance, a malicious application can change electronic contact data, may delete electronic contact data from the centralized store, etc.